
# 面向对象 ：变量
"""
在类中，变量包括 ：类变量 ，实例变量 ，局部变量 。

# 1. 类变量
1）概念：定义在类内部，方法外的变量 。这些变量会被整个类所共享 。
2）定义： 变量名 = 值
3）调用:
    对象名.变量名
    类名.变量名
4) 说明：定义的类变量 ，它的作用范围是最大的 。
5） 使用场景 ：定义公共数据

# 2. 实例变量
1） 概念：定义在方法的内部，专门给对象使用的变量
2) 定义 ：self.变量名 = 值
3) 调用 ：self.变量名
4） 作用范围 ：针对申明的对象 ，能在各个方法中使用

# 3.局部变量
1）概念 ：定义方法内或者代码块内部 ，
2）定义 ：变量名 = 值
3）调用 ：变量名
4）作用范围 ：在此方法内或者代码块内部
"""


class Bug:

    bug_level = [1,2,3,4]
    bug_pri = [1,2,3,4]

    def __init__(self,product,project):
        self.version = '主干'
        self.module = '/'
        self.product = product
        self.project = project

    def create_bug(self):
        self.bug_title = '这是一个测试Bug'
        print("在方法中访问类变量，通过实例访问:{}".format(self.bug_level))
        print("在方法中访问类变量,通过类名访问:{}".format(Bug.bug_level))
        print("版本:{}".format(self.version))
        print("模块:{}".format(self.module))
        print("产品:{}".format(self.product))
        print("项目:{}".format(self.project))


    def search_bug(self,title=None):
        print(self.bug_title)

        # 局部变量
        db_bugs = [
            {'bug_id': 1, 'bug_title': '学生列表页使用学生名称进行搜索 结果不正确', 'bug_project': self.project, 'version': 1.0},
            {'bug_id': 2, 'bug_title': '和方法开始减肥盛世嫡妃', 'bug_project': 'tpshop', 'version': 1.0,'bug_level':self.bug_level},
            {'bug_id': 3, 'bug_title': '导出的数据中字段(执勤单位)数据显示错误', 'bug_project': 'wx', 'version': 1.0},
            {'bug_id': 4, 'bug_title': '学生列表sdfsdfsdfsdfsdf', 'bug_project': 'wx', 'version': 1.0},
            {'bug_id': 5, 'bug_title': '学员列表页按照学生名称进行搜索 结果不正确', 'bug_project': 'tpshop', 'version': 1.0}
        ]
        if title:
            lst = []    # 存放搜素到的Bug数据
            for bug in db_bugs:
                bug_title = bug.get('bug_title')
                if title in bug_title:
                    lst.append(bug)
            return lst
        return db_bugs


bug1 = Bug('tpshop','front')

bug1.create_bug()
print("==========================")
print(bug1.search_bug('导出的数据'))


